package main

import "fmt"

//当 numbers = [0, 1] 时，append(numbers, 2, 3, 4) 为什么 cap 从 2 变成 6 ？
//经过实践得知，append(list, [params])，先判断 list 的 cap 长度是否大于等于 len(list) + len([params])，
//如果大于那么 cap 不变，否则 cap 等于 max{cap(list), cap[params]}，所以当 append(numbers, 2, 3, 4) cap 从 2 变成 6。
func main() {
	numbers := []int{0, 1, 2, 3, 4, 5, 6, 7, 8}
	number3 := numbers[0:1]
	printSlice(number3)
	number3 = append(number3, 1, 2, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6)
	printSlice(number3)

}

func printSlice(x []int) {
	fmt.Printf("长度=%d 容量=%d 元素=%v\n", len(x), cap(x), x)
}
